package cn.cjxy.day12springboot_mybatis.mapper;

import cn.cjxy.day12springboot_mybatis.domain.Student;
import cn.cjxy.day12springboot_mybatis.query.StudentQuery;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * mapper层接口
 *
 * 在Mybatis中使用XML映射文件方式开发，需要符合一定的规范
 *
 * - XML映射文件的名称与Mapper接口名称一致，并且将XML映射文件和Mapper接口放置在相同包下，保持同包同名
 *
 * - XML映射文件的namespace属性与Mapper接口全限定名保持一致
 *
 * - XML映射文件中sql语句的id与Mapper接口中的方法名一致，并保持返回类型一致。一个标签对应Mapper接口一个方法
 * @author huangjie
 * @date 2025/10/16
 */
@Mapper//表示此为数据访问层
public interface StudentMapper {
    //查询所有
   // @Select("select * from t_student")   不建议使用 太low
    List<Student> selectAll();
    //根据id查询一个
    Student getOne(Long id);
    //根据用户姓名模糊查询
    List<Student> getStuentByName(String name);
    //新增
    int insert(Student student);
    //修改
    void update(Student student);
    //删除
    void delete(Long id);

    //根据表名查询数据库
    List<Student> getByTableName(String tableName);

    //根据学员名称和年龄查询数据
    List<Student> getStudentByNameAndAge(StudentQuery studentQuery);
}
